﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CDStore3Tiers
{
    public class XLPhanQuyen
    {
        private StoreCDDataContext db;
        /// <summary>
        /// khởi tạo lớp xử lý
        /// </summary>
        public XLPhanQuyen()
        {
            db = new StoreCDDataContext();
            db.Connection.ConnectionString = getConfig.getConnection();
        }
        private List<TaiKhoanChucNang> tk;

        /// <summary>
        /// lấy ra danh sách quyền hạn mà tài khoản có
        /// </summary>
        /// <param name="id">tên tài khoản</param>
        /// <returns>danh sách quyền hạn</returns>
        public List<TaiKhoanChucNang> TKChucNang(string id)
        {
           
            List<TaiKhoanChucNang> tk = (from ds in db.TaiKhoanChucNangs
                  where (ds.ID == id) 
                select ds).ToList<TaiKhoanChucNang>();
            return tk;
        }

        /// <summary>
        /// KIểm tra tài khoản có quyền truy cập chức năng tương ứng
        /// </summary>
        /// <param name="id">tên tài khoản</param>
        /// <param name="val">chức năng</param>
        /// <returns>đúng/sai</returns>
        public bool CoQuyen(string id, int val)
        {
           // db = new StoreCDDataContext();
         //   db.Connection.ConnectionString = getConfig.getConnection();
            List<TaiKhoanChucNang> kiemtra = (from ds in db.TaiKhoanChucNangs
                                         where (ds.ID == id)
                                         where (ds.TKChucNang == val)
                                         select ds).ToList<TaiKhoanChucNang>();
            if (kiemtra.Count > 0)
                return true;
            return false;
        }
        /// <summary>
        /// lấy tất ca chức năng của phần mềm
        /// </summary>
        /// <returns>danh sách chức năng</returns>
        public List<ChucNang> DSChucNang()
        {
           // db = new StoreCDDataContext();
           // db.Connection.ConnectionString = getConfig.getConnection();
            List<ChucNang> cn = (from ds in db.ChucNangs
                                         select ds).ToList<ChucNang>();
            return cn;
        }
        /// <summary>
        /// lấy ra tất cả quyền của tài khoản đo
        /// </summary>
        /// <param name="id">tên tài khoản</param>
        /// <returns>danh sách quyền</returns>
        public List<vwQuyenHan> selectChucNang(string id)
        {
           // db = new StoreCDDataContext();
           // db.Connection.ConnectionString = getConfig.getConnection();
            List<vwQuyenHan> cn = (from ds in db.vwQuyenHans
                                   where ds.ID == id
                                    select ds).ToList<vwQuyenHan>();
            return cn;
        }
        /// <summary>
        /// Tìm kiếm quyền hạn trong tài khoản
        /// </summary>
        /// <param name="SK">danh sách quyền hạn</param>
        /// <param name="val">chuỗi tìm kiếm</param>
        /// <returns>danh sách quyền</returns>
        public List<vwQuyenHan> searchByID(List<vwQuyenHan> SK, string val)
        {
            val = val.ToLower();
            return SK.Where(c => c.TKChucNang.ToString().Contains(val) || c.ChucNangPM.ToString().ToLower().Contains(val)).ToList<vwQuyenHan>();

        }

        /// <summary>
        /// tìm kiếm chức năng trong ohân mềm
        /// </summary>
        /// <param name="SK">danh sách chức năng</param>
        /// <param name="val">chuỗi tìm kiếm</param>
        /// <returns></returns>
        public List<ChucNang> searchByDSCN(List<ChucNang> SK, string val)
        {
            val = val.ToLower();
            return SK.Where(c => c.MaChucNang.ToString().Contains(val) || c.ChucNangPM.ToString().ToLower().Contains(val) || c.QuyenHanMacDinh.ToString().ToLower().Contains(val)).ToList<ChucNang>();
        }

    }
}
